package com.coocaa.ops.admin.v1.audit.provider;


import com.coocaa.ops.admin.v1.audit.model.CheckInfoModel;
import com.coocaa.ops.admin.v1.audit.model.ExecutionTaskModel;
import com.coocaa.ops.common.core.base.model.ResourceBaseModel;

/**
 * @author bijiahao
 * @date : 2018/6/15.
 * @description: 审核前校验-审核-撤销审核-上架操作 提供者接口
 *
 */
public interface IAuditTaskProvider {

    /**
     * 上架操作
     *
     * @param resourceBaseModel
     * @param userId
     * @return
     */
    void putShelves(ResourceBaseModel resourceBaseModel, Integer userId);

    /**
     * 执行任务-审核操作
     *
     * @param executionTaskModel
     * @param userId
     * @return
     */
    void auditTask(ExecutionTaskModel executionTaskModel, Integer userId);

    /**
     * 撤销审核
     *
     * @param resourceBaseModel
     * @param userId
     */
    void revokedAudit(ResourceBaseModel resourceBaseModel, Integer userId);

    /**
     * 审核前的校验
     *
     * @param resourceBaseModel
     * @return
     */
    CheckInfoModel checkBeforeAudit(ResourceBaseModel resourceBaseModel);

    /**
     * 取消定时任务后的操作
     *
     * @param resourceBaseModel
     * @param userId
     */
    void cancelTask(ResourceBaseModel resourceBaseModel, Integer userId);

}
